*,
*::after,
*::before {
    box-sizing: border-box;
}

:root {
    font-size: 15px;
}

body {
    margin: 0;
    --color-text: #a3abcd;
    --color-text-alt: #747474;
    --color-bg: #f1f1f1;
    --color-link: #161616;
    --color-link-hover: #797979;
    color: var(--color-text);
    background: var(--color-bg);
    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif;
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    --cursor-stroke: #000000;
}

a {
    text-decoration: none;
    color: var(--color-link);
    outline: none;
}

a:hover {
    color: var(--color-link-hover);
    outline: none;
}

/* Better focus styles from https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible */
a:focus {
    /* Provide a fallback style for browsers
     that don't support :focus-visible */
    outline: none;
    background: lightgrey;
}

a:focus:not(:focus-visible) {
    /* Remove the focus indicator on mouse-focus for browsers
     that do support :focus-visible */
    background: transparent;
}

a:focus-visible {
    /* Draw a very noticeable focus style for
     keyboard-focus on browsers that do support
     :focus-visible */
    outline: 2px solid red;
    background: transparent;
}

main {
    height: 100vh;
    display: flex;
    flex-direction: column;
}

.frame {
    padding: 1.5rem 2rem 10vh;
    text-align: center;
    position: relative;
}

.frame__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 500;
}

.frame__links {
    margin: 0.5rem 0 2rem;
}

.frame__links a:not(:last-child) {
    margin-right: 1rem;
}

.menu {
    flex: 1;
    display: grid;
    place-items: center;
    align-self: center;
    grid-gap: 7vw;
    font-size: 2rem;
    font-family: "Goudy Old Style", Garamond, "Big Caslon", "Times New Roman", serif;

}

.cursor {
    display: none;
}

@media screen and (min-width: 53em) {
    .menu {
        font-size: 3vw;
        grid-auto-flow: column;
        max-width: min-content;
    }

    .frame {
        padding: 1.5rem 2rem 0;
        display: grid;
        grid-template-columns: auto 1fr auto;
        grid-template-areas: 'title links sponsor';
        grid-gap: 3vw;
        justify-content: space-between;
        text-align: left;
    }

    .frame__links {
        margin: 0;
    }
}

@media (any-pointer: fine) {
    .cursor {
        position: fixed;
        top: 0;
        left: 0;
        display: block;
        pointer-events: none;
        z-index: 10000;
    }

    .cursor__inner {
        fill: none;
        stroke: var(--cursor-stroke);
        stroke-width: 1.2px;
    }

    .no-js .cursor {
        display: none;
    }

}
